The present invention relates to the field of computer languages. In particular the present invention discloses methods for inline variable management into a hypermedia display language.
The Internet is a rapidly growing communication network of interconnected computers around the world. Together, these millions of connected computers form a vast repository of hyperlinked information that is readily accessible by any of the connected computers from anywhere at any time. To provide mobility and portability of the Internet, wireless computing devices were introduced and are capable of communicating, via wireless data networks, with the computers on the Internet. With the wireless data networks, people, as they travel or move about, are able to perform, through the wireless computing devices, exactly the same tasks they could do with computers on the Internet.
The most common remote access paradigm is, as of today, the one in which a laptop personal computer is equipped with a wireless communication mechanism, for example, a wireless modem. This paradigm may remain useful for a considerable number of applications and users, but there has been a growing need for a mobile paradigm in which the Internet can be instantly accessed by mobile devices, such as mobile phones and personal digital assistants (PDA). With increasing data processing capabilities in the mobile devices, more and more users are carrying such devices around to materialize their unproductive time into productive time.
To increase portability and mobility, most mobile devices are designed small in size, light in weight, low in power consumption, and as economical and portable as possible. Such thin designs often have very limited computing resources, for example, their computing power is, perhaps, typically equivalent to less than one percent of what is provided in a typical desktop or portable computer, their memory capacity is generally less than 250 kilobytes and their LCD display is perhaps four lines high by twelve or twenty characters, and their graphics capabilities are very limited or nearly nonexistent and their input interface is often a keypad having far fewer buttons than a PC keyboard does. These design constraints generally seen in a mobile device make implementing browsers for Internet navigation quite difficult. For example, conventional browsers for desktop personal computers are notorious for requiring large amounts of disk space, large amounts of memory, and powerful processors.
One particular difficulty in implementing a browser on a handheld device is the problem of incorporating client state information into display pages. There are typically two common methods of implementing client state information into display pages. A first method of incorporating client state information into a display page is to ask the user for some information and then incorporate that information into a newly generated display page. This method works well for computers on the Internet but does not work well for wireless handheld devices such as the mobile devices that generally can not effectively handle user supplied information locally for immediate display. Hence the user supplied information has to be sent back to a server where the user supplied information is processed and incorporated into new display pages that are then returned to the mobile devices. The disadvantages of this method when used in the mobile devices are evident as the network round-trip introduces additional latency and causes unnecessary network traffic. Another method commonly used in computers on the Internet is to use a scripting language, such as JavaScript and ActiveX, to take in and incorporate the user supplied information when displaying a hypermedia page. The method, however, proves to be too complicated to be used in the mobile devices. Thus, there is a great need for a generic solution to managing the client state information into display pages in thin client devices like the mobile devices.
The present invention has been made in consideration of the above described problems and has particular applications to the navigation of Internet web pages using thin devices, such as a mobile computing device, a mobile device, a landline telephone, and an Internet-capable appliance controller. The present invention discloses methods for inline variable management in a hypermedia display language. The variables are named pieces of information that can be substituted in a hypermedia display language or markup language with respect to user supplied information when constructing a display page. Thus, the present invention solves the problem of using client state in displays without the necessity of the server round-trip and without incurring all the memory and processing requirements of a full scripting language.
According to one aspect of the present invention, a client process that interprets the markup language with variables is designed to identify and properly respond to the variables inserted into the markup language at runtime. Variables are identified by a xe2x80x9ckeyxe2x80x9d and contain a text xe2x80x9cvalue.xe2x80x9d Hypertext content may contain references to variables by the key. Variables may be set statically using markup language tags, dynamically using user input, or may contain data from the client environment. During the processing and display of the hypertext, the values of the variables are substituted into the hypertext as indicated by the variable references according to a text substitution method.
According to another aspect of the present invention, the disclosed system provides mechanisms to create variable scopes. In one embodiment, activities are created that include activity frames that store variables associated with the activities. Methods are presented to allow variable information to pass between different activities. To ensure an activity would not expose sensitive information kept locally in a client process, the disclosed system uses a set of parameters to protect those private activities from general public activities.
In one embodiment, activities may be created by navigating within hypertext documents such that a markup that defines a new activity is created.
Accordingly, an important object of the present invention is to provide mechanisms to efficiently manage client state information in a hypermedia display language;
Other objects, together with the foregoing are attained in the exercise of the invention in the following description and resulting in the embodiment illustrated in the accompanying drawings.